Clase Analisis y Presentacion de Datos

Comparacion de artistas en base a sus canciones

Suponemos que podemos evaluar que tan parecido son dos autores en base a que tan comunmente usan cada palabra


In [1]:
import csv

data = {}

with open("songdata.csv") as file:
    for author,_,_,lyric in csv.reader(file):
    
        data[author] = data.get(author,{})
        for word in set(lyric.lower().split()):
            data[author][word] = data[author].get(word,0) + 1

In [2]:
data["ABBA"]


Out[2]:
{'a': 101,
 'fine': 8,
 "we'll": 8,
 'i': 103,
 'can': 62,
 'believe': 16,
 'be': 61,
 'holds': 1,
 'on': 58,
 'of': 83,
 'face': 16,
 'feel': 37,
 'the': 104,
 'who': 16,
 'one': 38,
 'walk': 6,
 'talking': 3,
 'way': 30,
 'ever': 16,
 'we': 50,
 'squeezes': 1,
 'about': 18,
 'do?': 2,
 'park': 4,
 'sees': 2,
 'leaves': 5,
 'what': 48,
 'do,': 5,
 'how': 37,
 'she': 20,
 'makes': 11,
 'plan': 2,
 'just': 47,
 'without': 10,
 'wonderful': 3,
 'kind': 12,
 'walking': 5,
 'look': 24,
 'if': 45,
 'for': 71,
 'to': 102,
 'face,': 1,
 'fellow': 2,
 'girl,': 4,
 'go': 43,
 'smiles': 1,
 'hours': 3,
 'all': 63,
 'things': 13,
 'special': 7,
 'could': 31,
 'and': 110,
 'something': 16,
 'mine?': 1,
 'it': 86,
 'when': 53,
 'my': 72,
 'that': 75,
 "i'm": 53,
 'blue': 13,
 'me': 83,
 'means': 4,
 'in': 85,
 'hand': 10,
 'her': 15,
 'at': 37,
 'lucky': 1,
 "it's": 53,
 'be?': 2,
 "she's": 7,
 "you're": 43,
 'me,': 23,
 'breeze': 4,
 'thousand': 2,
 'shimmer': 1,
 'gently': 2,
 'now': 48,
 'time': 28,
 '(i': 7,
 'on,': 8,
 'take': 30,
 'velvet': 1,
 'float': 1,
 'night': 24,
 'please': 13,
 'song': 6,
 'time,': 3,
 'evening': 4,
 'fingers': 3,
 'ground': 3,
 'making': 9,
 'butterflies': 1,
 'away': 21,
 "there's": 22,
 'sound': 6,
 "'cause": 19,
 'like': 60,
 'summer': 5,
 '(play': 1,
 'song)': 1,
 'andante': 1,
 'music': 6,
 'down': 25,
 'tread': 1,
 'soft': 3,
 'easy': 6,
 'light': 12,
 'feeling': 24,
 'andante,': 1,
 'know': 55,
 '(you': 4,
 'touch': 6,
 'your': 53,
 'slow': 3,
 'eyes': 19,
 'strong)': 1,
 'grow': 5,
 'lightly': 1,
 'sing,': 1,
 'let': 21,
 'am': 18,
 'talk,': 1,
 'strong': 9,
 'play': 17,
 'with': 46,
 'oh': 25,
 'me)': 3,
 'sing': 13,
 'body': 2,
 'you': 92,
 'soul,': 1,
 'make': 20,
 'slowly': 4,
 'again': 17,
 "don't": 39,
 'lousy': 2,
 'cheap': 1,
 'our': 20,
 'so': 78,
 'why': 13,
 'better': 20,
 'growing': 3,
 'meant': 2,
 'up': 21,
 'notion': 2,
 'taking': 4,
 'never': 40,
 'creep,': 1,
 'put': 3,
 'entitled': 1,
 'another': 12,
 'baby,': 10,
 'now,': 5,
 "i've": 25,
 'always': 22,
 'even': 10,
 'stay': 10,
 'together': 12,
 'had': 25,
 'was': 45,
 'new,': 1,
 'near': 9,
 'beg': 2,
 'love': 40,
 'an': 17,
 'get': 33,
 'new': 11,
 'but': 63,
 'too': 20,
 'rotten': 1,
 'break': 8,
 'god': 3,
 'out': 28,
 'keeping': 1,
 'used': 9,
 'enough': 4,
 'good': 16,
 'were': 12,
 'such': 7,
 'darling,': 1,
 'deep': 4,
 'as': 30,
 'feels': 1,
 'think': 33,
 'is': 67,
 'dimension': 1,
 "i'll": 22,
 'dumb': 2,
 'stuff': 1,
 'need': 11,
 'have': 51,
 'boy,': 2,
 'anymore,': 1,
 'packing': 2,
 'mistake': 3,
 'end': 9,
 'intention': 1,
 'gotta': 6,
 'forgive': 2,
 'yes': 16,
 'tough,': 1,
 'please,': 3,
 'felt': 3,
 'saying': 4,
 'ma': 1,
 'yes,': 11,
 'here': 23,
 'standing': 7,
 'true': 13,
 'thought': 11,
 'not': 29,
 'found': 8,
 'life': 26,
 'thank': 2,
 'show': 18,
 'come': 21,
 'hum-de-hum-hum': 2,
 'boom-a-boomerang': 2,
 'every': 26,
 'advice': 2,
 'sweet': 10,
 'surrender': 4,
 'happy': 11,
 'smile': 10,
 'will': 38,
 'you,': 15,
 'be-dum-be-dum-dum': 1,
 'kisses': 3,
 'sender': 2,
 'little': 25,
 'showing': 2,
 'away,': 6,
 'tune': 3,
 'they': 30,
 "you'll": 14,
 'warm': 6,
 'tool': 2,
 'somebody': 9,
 'tender': 3,
 'anywhere': 5,
 'mean': 10,
 'give': 14,
 'use': 6,
 'around': 16,
 'care': 13,
 'throwing': 2,
 'fool': 9,
 'bang,': 2,
 'dum-be-dum-dum': 1,
 'boomerang': 2,
 'selfish': 2,
 'yourself': 5,
 "you've": 17,
 'return': 2,
 'kiss': 7,
 'question': 3,
 'much': 12,
 'learn': 3,
 'giving': 6,
 'be-dumb-be-dumb-dumb': 1,
 'by': 22,
 'dumb-be-dumb-dumb': 1,
 "ain't": 9,
 'well,': 10,
 "walkin'": 2,
 'more': 23,
 'holy': 1,
 'holler': 1,
 'eye': 3,
 'heel': 1,
 'wanna': 4,
 'bridges': 1,
 'ways': 4,
 'girl': 20,
 'peace': 1,
 'tired': 7,
 'ride': 2,
 'burning': 4,
 'hoot': 1,
 'under': 5,
 'un-right': 1,
 'christ': 1,
 'been': 18,
 'counting': 1,
 'pride': 4,
 'burying': 1,
 'moving': 4,
 'past': 7,
 'deal': 1,
 'gonna': 21,
 'once': 4,
 '-': 2,
 'into': 13,
 'free': 10,
 'tie': 1,
 'tedious': 1,
 'cutting': 1,
 'leaving': 5,
 'myself': 9,
 'sick': 2,
 'mad': 3,
 'no': 40,
 'door': 7,
 "neighbour's": 1,
 'being': 6,
 'bridges,': 1,
 'sucker': 1,
 'last': 12,
 'reason': 6,
 'fight': 7,
 'dreams': 8,
 'casting': 3,
 'believed': 1,
 'sorry': 3,
 'almost': 6,
 'would': 20,
 'morning': 14,
 'else': 4,
 'are': 30,
 'while': 14,
 'sell': 1,
 'sails': 1,
 'staying': 3,
 'start': 7,
 'must': 15,
 'hour': 5,
 'saw': 7,
 'stood': 3,
 'bed': 4,
 'words': 6,
 'sleep': 7,
 'fate': 2,
 'shame': 2,
 'watched': 2,
 'some': 19,
 'then': 29,
 'until': 6,
 'hearts': 2,
 'wanted': 7,
 'filled': 2,
 'city': 4,
 'rain': 10,
 'cassandra': 1,
 'though': 9,
 'only': 27,
 'pity': 1,
 'suffer': 1,
 'figure': 1,
 'deck,': 1,
 'warning': 1,
 'alone': 15,
 'shouting': 1,
 'listen': 6,
 'alive': 3,
 "didn't": 11,
 'crying': 6,
 'singing': 2,
 'aching': 1,
 'none': 3,
 'dead': 3,
 'street': 5,
 'us': 17,
 'slack': 1,
 'wait': 3,
 'dawning': 3,
 'secrets': 2,
 'hollow': 1,
 'from': 37,
 'tiny': 1,
 'smart,': 1,
 'hiding': 1,
 'future': 3,
 'rigid': 1,
 'cool': 4,
 'pain': 6,
 'darkest': 3,
 'playing': 7,
 'sailing': 1,
 'linger': 1,
 'shadow': 2,
 'sure': 13,
 'there': 22,
 'day': 28,
 'their': 8,
 'gone': 13,
 'sunrise': 4,
 'nights': 5,
 'lost': 5,
 'knew': 9,
 'bags,': 1,
 'knowing,': 1,
 'harbor': 1,
 'power': 1,
 'still': 24,
 'restrained,': 1,
 'ship': 1,
 'bargain,': 1,
 'grieving': 2,
 'nobody': 4,
 'caught': 3,
 'deeply': 1,
 'late,': 2,
 'really': 20,
 "they're": 13,
 'father': 1,
 'laughter': 3,
 'behind': 6,
 'final': 1,
 'misunderstood': 1,
 'sister': 1,
 'weave': 1,
 'thorough': 1,
 'seems': 16,
 'rely': 1,
 'shoulder': 1,
 'candle': 1,
 'tomorrow': 5,
 'above': 3,
 'scars': 1,
 'heartaches': 1,
 'hard': 13,
 'shining': 6,
 'song,': 3,
 'sun': 13,
 'this': 31,
 'patch': 1,
 'deny': 3,
 'dancing': 8,
 'blown': 1,
 'cry': 14,
 'own': 8,
 'chiquitita': 1,
 "what's": 10,
 'enchained': 1,
 'hear': 22,
 'friend,': 2,
 'hope': 3,
 'try': 13,
 'wrong': 8,
 'see': 52,
 'sad,': 1,
 'came': 7,
 'chiquitita,': 1,
 'walls': 4,
 'did': 14,
 'tumbling': 1,
 'tell': 21,
 'sky': 7,
 'hate': 3,
 'best': 5,
 'feather': 1,
 'truth': 3,
 'handle': 1,
 'broken': 1,
 'sorrow': 2,
 'quiet': 3,
 "love's": 2,
 'before': 17,
 'guys': 1,
 'emptiness': 1,
 'couple': 1,
 'meet': 8,
 'crazy': 9,
 'guy': 5,
 'eyes,': 5,
 'lot': 8,
 'closing': 1,
 'seeing': 5,
 'car': 1,
 'may': 7,
 '"that': 1,
 "he's": 9,
 'pavement': 1,
 'dreamed': 2,
 'smiled': 4,
 'world': 20,
 'talk': 10,
 'closed': 2,
 'realized,': 1,
 'do': 42,
 'disapeared': 1,
 'everything': 22,
 'took': 5,
 'thinking': 6,
 'said,': 3,
 'long': 14,
 'joe': 1,
 'he': 16,
 'front': 2,
 "couldn't": 7,
 'sleep,': 2,
 'stupid': 2,
 'them': 15,
 'stunned': 1,
 'brother': 4,
 'men': 6,
 'something",': 1,
 'house,': 2,
 'blind': 3,
 'him,': 3,
 "i'd": 9,
 'lies': 5,
 'went': 7,
 'acted': 1,
 'hardly': 2,
 "life's": 1,
 'nice': 5,
 'way"': 1,
 'his': 16,
 'back': 14,
 'part': 6,
 'told': 4,
 'move': 4,
 'leave': 13,
 'other': 9,
 '"there': 1,
 'long,': 2,
 'feet': 4,
 'over': 12,
 "sittin'": 2,
 'bone': 1,
 "waitin'": 1,
 "cryin'": 1,
 "you'd": 11,
 'sitting': 9,
 'lord': 2,
 'memories': 3,
 'baby': 13,
 'cold': 10,
 'chills': 1,
 "won't": 17,
 'met': 4,
 'help': 13,
 'dance,': 3,
 'turn': 7,
 'say?': 1,
 'oh,': 11,
 'goodbye': 7,
 'goes': 5,
 'dance': 9,
 'blame': 4,
 "let's": 4,
 'did,': 2,
 '(fade)': 1,
 'flying': 5,
 "tonight's": 1,
 'had?': 1,
 'yet': 7,
 'knows': 6,
 "nothing's": 3,
 'thing': 13,
 'say': 28,
 'over,': 1,
 'sad.': 1,
 "we're": 19,
 'it,': 16,
 'trying': 4,
 'same': 6,
 "we've": 6,
 "nobody's": 3,
 'dream,': 3,
 'remember': 8,
 'bad?': 1,
 'memory,': 1,
 'borrow.': 1,
 'forget': 8,
 'snowbird,': 1,
 'seventeen': 3,
 'lights': 5,
 'anybody': 3,
 'getting': 6,
 'rock': 5,
 'king': 5,
 'place': 11,
 'jive,': 1,
 'where': 15,
 'mood': 2,
 'queen': 4,
 'having': 4,
 'swing': 2,
 "diggin'": 1,
 'teaser,': 2,
 'queen,': 2,
 'beat': 3,
 "'em": 2,
 'right': 19,
 'looking': 14,
 'friday': 3,
 'young': 5,
 'sweet,': 2,
 "music's": 2,
 'low': 5,
 'bit': 4,
 'watch': 4,
 'another,': 1,
 'high': 6,
 'tambourine': 2,
 'music,': 4,
 'chance': 17,
 'scene,': 1,
 'anyone': 4,
 'chasing': 2,
 'breaking': 6,
 'circle': 1,
 'thinking,': 1,
 'then,': 2,
 'matter': 4,
 'doing': 3,
 'laughing': 3,
 'hoping,': 1,
 'scar': 1,
 'wondering': 1,
 "disillusion's": 1,
 'disillusions,': 1,
 "that's": 18,
 "doesn't": 10,
 'heal': 1,
 'wishing,': 1,
 'shared': 1,
 'left': 7,
 'wound': 1,
 'somewhere': 7,
 'stop': 3,
 'voice,': 1,
 'disillusion,': 1,
 'shadows': 6,
 'changing,': 1,
 'loud': 3,
 'smiling,': 2,
 'want': 25,
 'crowd': 4,
 'had,': 1,
 "can't": 25,
 'seem': 4,
 'flirt': 1,
 'does': 7,
 'feelings': 9,
 'honey': 5,
 'fun': 9,
 'searching': 1,
 '(take': 2,
 'out?': 1,
 'read': 3,
 'chick': 1,
 'child': 1,
 'ah,': 2,
 'mother': 2,
 'driving': 3,
 'cute,': 1,
 'chat': 2,
 'style': 4,
 'hot,': 1,
 'maybe': 6,
 'flash': 2,
 'know?': 1,
 'easy)': 1,
 'funny': 10,
 '(smile)': 1,
 'well': 9,
 'pretty': 6,
 'wild': 4,
 'teasing': 1,
 'groovy': 1,
 'boy': 3,
 'expectations': 1,
 'fed-up': 1,
 'stars': 4,
 'white': 2,
 'am,': 2,
 'trust': 3,
 'reality': 2,
 'got': 22,
 'meets': 3,
 'pretend': 2,
 'hopes': 1,
 'within,': 1,
 'angel': 6,
 'reach': 4,
 'charming': 1,
 'movie': 6,
 'living': 9,
 'hollywood': 1,
 'dreamworld': 1,
 'agnetha': 1,
 'frida': 4,
 'escape': 3,
 'are,': 3,
 'friend': 16,
 'whirl': 2,
 'acquisitions': 1,
 'fuss': 1,
 'hold': 10,
 'somehow': 5,
 'agnetha,': 4,
 'dreamworld,': 1,
 'smiling': 2,
 'everytime': 1,
 'first': 6,
 'exist': 1,
 'darling': 8,
 'sounds': 6,
 'wo-oh': 1,
 'violin': 1,
 'wish': 8,
 'work,': 1,
 'practising': 1,
 'fair': 1,
 'fiddle': 2,
 'bad': 6,
 'sad': 9,
 'find': 18,
 'play,': 1,
 'think,': 2,
 'mine': 3,
 'kind,': 1,
 'mind,': 4,
 'day,': 4,
 'improve': 1,
 'listened': 1,
 'diddle,': 1,
 "we'd": 2,
 'or': 15,
 'far': 6,
 'strangely': 1,
 'understand': 7,
 'friends': 10,
 'wing': 1,
 'wings?': 1,
 'seen': 6,
 "they've": 3,
 'questions': 4,
 'places': 2,
 'dream': 13,
 'eagle': 2,
 'forests': 1,
 "(i'm": 4,
 'mountains': 1,
 'spell': 3,
 'horizons': 1,
 'speak': 4,
 'land': 4,
 'climb': 1,
 'eagle?': 1,
 'eagle)': 1,
 'wings': 1,
 'rides': 1,
 'spread': 1,
 'stories': 1,
 'feel,': 2,
 'real?': 1,
 'night,': 3,
 'hearing': 3,
 'beyond': 1,
 'seas': 1,
 'bird': 1,
 'feeling)': 1,
 'higher': 2,
 'dreaming': 2,
 'high,': 1,
 'fly': 2,
 'limit': 1,
 '(what': 1,
 'needs': 2,
 'star': 6,
 'empty': 3,
 'known': 3,
 'guiding': 1,
 'travel': 2,
 'helping': 2,
 'man': 14,
 'has': 12,
 'lose': 6,
 'going': 12,
 'dark': 6,
 'should': 8,
 'side': 3,
 '(repeat': 1,
 'regret': 2,
 'closer': 1,
 'fernando?': 2,
 'die': 5,
 'rio': 1,
 'since': 6,
 'minute': 4,
 'humming': 1,
 'rifle': 1,
 'afraid': 2,
 'recall': 2,
 'made': 10,
 'would,': 1,
 'drums': 2,
 'starry': 1,
 'seemed': 3,
 'bugle': 1,
 'fernando': 2,
 'air': 7,
 'many': 3,
 'afar': 2,
 'proud': 6,
 'freedom': 3,
 'distant': 2,
 'firelight': 1,
 'old': 18,
 'cannons': 1,
 'eternally': 1,
 'years': 2,
 'softly': 2,
 'prepared': 2,
 'roar': 1,
 'crossed': 1,
 'calls': 2,
 'full': 3,
 'liberty,': 1,
 'coming': 7,
 'x2)': 1,
 'fernando...': 1,
 'bright,': 1,
 "haven't": 2,
 'ago': 1,
 'guns': 1,
 'grande?': 1,
 'grey': 3,
 'strumming': 1,
 'guitar': 1,
 'ashamed': 1,
 'frightful': 1,
 'de': 1,
 'puedes': 1,
 'juventud': 1,
 'llego': 1,
 'haria': 1,
 'y': 1,
 'tus': 1,
 'durmio': 1,
 'redoblar': 1,
 'ayer': 1,
 'noche': 1,
 'tarareabas': 1,
 'echar': 1,
 'la': 5,
 'esos': 1,
 'se': 1,
 'yo': 1,
 'pensabamos': 1,
 'con': 1,
 'estrellas': 1,
 'aquel': 1,
 'el': 1,
 '"fade"]': 1,
 'vida': 1,
 'brillaba': 1,
 'nadie': 1,
 'pensaba': 1,
 'lumbre': 1,
 'guitarrear': 1,
 'refleja': 1,
 'eternidad': 1,
 'habia': 1,
 'momento': 1,
 'tambor': 1,
 'una': 1,
 'podia': 1,
 'ganas': 1,
 'pasaba': 1,
 'orgullo': 1,
 'perder': 1,
 'tambores': 1,
 'morir': 1,
 'senti': 1,
 'veo': 1,
 'valor.': 1,
 'ese': 1,
 'suave': 1,
 'que': 1,
 'claridad': 1,
 'si': 1,
 'llorar': 1,
 'fue': 1,
 'quiza': 1,
 'paz': 1,
 'confesar': 1,
 'ni': 1,
 '[repeata': 1,
 'acercaban': 1,
 'tuviera': 1,
 'recuerda': 1,
 'mas': 1,
 'temor': 1,
 'tu': 1,
 'ya': 1,
 'sordo': 1,
 'verguenza': 1,
 'un': 1,
 'logramos': 1,
 'escuchar': 1,
 'vejez': 1,
 'alla': 1,
 'azul': 1,
 'tiempo': 1,
 'hacer': 1,
 'parecia': 1,
 'tuve': 1,
 'siento': 1,
 'proteccion': 1,
 'algo': 1,
 'en': 1,
 'hoy': 1,
 'volverlo': 1,
 'nosotros': 1,
 'dos': 1,
 'vivimos': 1,
 'cancion': 1,
 'lo': 1,
 'al': 1,
 'ojos': 1,
 'alrededor': 1,
 'disfrutar': 1,
 'jamas': 1,
 'atras': 1,
 'aun': 1,
 'paraciera': 1,
 'por': 1,
 'ella': 1,
 'depressed': 2,
 'bum': 1,
 'next': 2,
 'laid': 1,
 'travelling': 1,
 'beautiful': 4,
 'chew': 1,
 'sip': 1,
 'each': 10,
 'weather': 2,
 'grass': 3,
 'straw': 1,
 'bus': 3,
 "isn't": 5,
 'outdoors': 1,
 'railroad': 1,
 'waiting': 17,
 'bumble': 1,
 'downtown': 2,
 'working': 3,
 'bee': 1,
 'track': 1,
 'lying': 3,
 'lie': 7,
 'lazy': 1,
 'flower': 1,
 'daylight': 1,
 'solitude': 2,
 'entwined': 2,
 'close': 9,
 'warms': 1,
 'diamond': 1,
 'window': 5,
 'haze': 1,
 'goodnight': 2,
 'fireplace': 2,
 'silently': 1,
 'pane': 1,
 'scenes': 2,
 'embers': 2,
 'forgotten': 2,
 'soon': 4,
 'voice': 6,
 'curtins': 1,
 'finally': 3,
 'echoes': 1,
 'twilight': 2,
 'room': 7,
 'images': 2,
 'dying': 5,
 'twinkle': 1,
 'awaited': 2,
 'room.': 1,
 'bend': 1,
 'trapped': 2,
 'passing': 4,
 'peaceful': 3,
 'become': 3,
 'mmm,': 1,
 'present': 2,
 'raindrops': 1,
 'mind': 12,
 'prolonged': 2,
 'through': 28,
 'dawn': 1,
 'twinkle,': 1,
 'outside': 4,
 'star.': 1,
 'round': 4,
 'runs': 2,
 "glitt'ring": 1,
 'gloom': 3,
 'drifts': 1,
 'darkness': 5,
 'shine': 2,
 'you.': 1,
 'trees': 2,
 ...}

Algo que no hicimos durante la clase, pero que si hay que hacer, es sacar las palabras que no nos dan informacion. Otra cosa que habria que hacer es sacar todos los simbolos.

Si no sabemos hacer algo, siempre podemos recurrir a Stack Overflow


In [3]:
import re
# https://stackoverflow.com/questions/875968/how-to-remove-symbols-from-a-string-with-python
def strip_simbols(string):
   return re.sub(r'[^\w]', '', string)

In [4]:
import csv

data = {}

with open("songdata.csv") as file:
    for author,_,_,lyric in csv.reader(file):
    
        data[author] = data.get(author,{})
        for word in set(lyric.lower().split()):
            word = strip_simbols(word)
            data[author][word] = data[author].get(word,0) + 1

In [5]:
data["ABBA"]


Out[5]:
{'a': 101,
 'fine': 9,
 'well': 27,
 'i': 114,
 'can': 64,
 'believe': 16,
 'be': 66,
 'holds': 1,
 'on': 68,
 'of': 83,
 'face': 18,
 'feel': 39,
 'the': 107,
 'who': 16,
 'one': 38,
 'walk': 7,
 'talking': 4,
 'way': 32,
 'ever': 17,
 'we': 51,
 'squeezes': 1,
 'about': 18,
 'do': 50,
 'park': 4,
 'sees': 2,
 'leaves': 5,
 'what': 49,
 'how': 37,
 'she': 20,
 'makes': 11,
 'plan': 2,
 'just': 47,
 'without': 10,
 'wonderful': 3,
 'kind': 13,
 'walking': 6,
 'look': 27,
 'if': 47,
 'for': 71,
 'to': 104,
 'fellow': 2,
 'girl': 24,
 'go': 47,
 'smiles': 2,
 'hours': 3,
 'all': 64,
 'things': 14,
 'special': 8,
 'could': 31,
 'and': 113,
 'something': 17,
 'mine': 4,
 'it': 107,
 'when': 53,
 'my': 74,
 'that': 79,
 'im': 58,
 'blue': 13,
 'me': 112,
 'means': 4,
 'in': 86,
 'hand': 12,
 'her': 15,
 'at': 37,
 'lucky': 2,
 'its': 56,
 'shes': 8,
 'youre': 43,
 'breeze': 5,
 'thousand': 2,
 'shimmer': 1,
 'gently': 2,
 'now': 54,
 'time': 31,
 'take': 32,
 'velvet': 1,
 'float': 1,
 'night': 27,
 'please': 17,
 'song': 10,
 'evening': 5,
 'fingers': 4,
 'ground': 4,
 'making': 9,
 'butterflies': 1,
 'away': 29,
 'theres': 22,
 'sound': 7,
 'cause': 22,
 'like': 60,
 'summer': 5,
 'play': 19,
 'andante': 2,
 'music': 10,
 'down': 27,
 'tread': 1,
 'soft': 3,
 'easy': 8,
 'light': 12,
 'feeling': 27,
 'know': 59,
 'you': 119,
 'touch': 6,
 'your': 54,
 'slow': 3,
 'eyes': 24,
 'strong': 10,
 'grow': 5,
 'lightly': 1,
 'sing': 14,
 'let': 21,
 'am': 20,
 'talk': 11,
 'with': 47,
 'oh': 36,
 'body': 2,
 'soul': 7,
 'make': 20,
 'slowly': 4,
 'again': 20,
 'dont': 41,
 'lousy': 2,
 'cheap': 1,
 'our': 20,
 'so': 80,
 'why': 15,
 'better': 20,
 'growing': 3,
 'meant': 2,
 'up': 22,
 'notion': 3,
 'taking': 4,
 'never': 41,
 'creep': 1,
 'put': 3,
 'entitled': 1,
 'another': 13,
 'baby': 23,
 'ive': 25,
 'always': 23,
 'even': 11,
 'stay': 10,
 'together': 15,
 'had': 27,
 'was': 46,
 'new': 12,
 'near': 9,
 'beg': 2,
 'love': 45,
 'an': 17,
 'get': 33,
 'but': 64,
 'too': 23,
 'rotten': 1,
 'break': 8,
 'god': 3,
 'out': 29,
 'keeping': 1,
 'used': 9,
 'enough': 4,
 'good': 17,
 'were': 33,
 'such': 7,
 'darling': 9,
 'deep': 4,
 'as': 30,
 'feels': 1,
 'think': 36,
 'is': 68,
 'dimension': 1,
 'ill': 22,
 'dumb': 2,
 'stuff': 1,
 'need': 12,
 'have': 51,
 'boy': 5,
 'anymore': 2,
 'packing': 2,
 'mistake': 3,
 'end': 9,
 'intention': 1,
 'gotta': 6,
 'forgive': 2,
 'yes': 28,
 'tough': 2,
 'felt': 4,
 'saying': 4,
 'ma': 1,
 'here': 25,
 'standing': 7,
 'true': 14,
 'thought': 11,
 'not': 30,
 'found': 8,
 'life': 31,
 'thank': 2,
 'show': 19,
 'come': 22,
 'humdehumhum': 2,
 'boomaboomerang': 2,
 'every': 26,
 'advice': 2,
 'sweet': 13,
 'surrender': 4,
 'happy': 11,
 'smile': 12,
 'will': 38,
 'bedumbedumdum': 1,
 'kisses': 3,
 'sender': 2,
 'little': 25,
 'showing': 2,
 'tune': 3,
 'they': 30,
 'youll': 15,
 'warm': 6,
 'tool': 2,
 'somebody': 9,
 'tender': 3,
 'anywhere': 5,
 'mean': 12,
 'give': 14,
 'use': 6,
 'around': 16,
 'care': 16,
 'throwing': 2,
 'fool': 10,
 'bang': 2,
 'dumbedumdum': 1,
 'boomerang': 2,
 'selfish': 2,
 'yourself': 5,
 'youve': 17,
 'return': 2,
 'kiss': 7,
 'question': 3,
 'much': 12,
 'learn': 3,
 'giving': 6,
 'bedumbbedumbdumb': 1,
 'by': 24,
 'dumbbedumbdumb': 1,
 'aint': 9,
 'walkin': 2,
 'more': 23,
 'holy': 1,
 'holler': 1,
 'eye': 3,
 'heel': 1,
 'wanna': 4,
 'bridges': 2,
 'ways': 4,
 'peace': 1,
 'tired': 8,
 'ride': 2,
 'burning': 5,
 'hoot': 1,
 'under': 5,
 'unright': 1,
 'christ': 1,
 'been': 18,
 'counting': 1,
 'pride': 4,
 'burying': 1,
 'moving': 4,
 'past': 7,
 'deal': 1,
 'gonna': 21,
 'once': 4,
 '': 3,
 'into': 13,
 'free': 10,
 'tie': 1,
 'tedious': 1,
 'cutting': 1,
 'leaving': 5,
 'myself': 9,
 'sick': 2,
 'mad': 3,
 'no': 44,
 'door': 7,
 'neighbours': 1,
 'being': 6,
 'sucker': 1,
 'last': 12,
 'reason': 6,
 'fight': 7,
 'dreams': 8,
 'casting': 3,
 'believed': 1,
 'sorry': 3,
 'almost': 6,
 'would': 21,
 'morning': 15,
 'else': 4,
 'are': 34,
 'while': 14,
 'sell': 1,
 'sails': 1,
 'staying': 3,
 'start': 9,
 'must': 15,
 'hour': 5,
 'saw': 7,
 'stood': 3,
 'bed': 5,
 'words': 6,
 'sleep': 9,
 'fate': 2,
 'shame': 3,
 'watched': 2,
 'some': 19,
 'then': 32,
 'until': 6,
 'hearts': 2,
 'wanted': 7,
 'filled': 2,
 'city': 5,
 'rain': 10,
 'cassandra': 1,
 'though': 9,
 'only': 28,
 'pity': 1,
 'suffer': 1,
 'figure': 1,
 'deck': 1,
 'warning': 1,
 'alone': 15,
 'shouting': 1,
 'listen': 7,
 'alive': 5,
 'didnt': 12,
 'crying': 6,
 'singing': 2,
 'aching': 1,
 'none': 3,
 'dead': 5,
 'street': 5,
 'us': 18,
 'slack': 1,
 'wait': 4,
 'dawning': 4,
 'secrets': 2,
 'hollow': 1,
 'from': 37,
 'tiny': 1,
 'smart': 1,
 'hiding': 1,
 'future': 3,
 'rigid': 1,
 'cool': 4,
 'pain': 6,
 'darkest': 3,
 'playing': 7,
 'sailing': 1,
 'linger': 1,
 'shadow': 2,
 'sure': 14,
 'there': 25,
 'day': 32,
 'their': 8,
 'gone': 15,
 'sunrise': 4,
 'nights': 7,
 'lost': 5,
 'knew': 9,
 'bags': 1,
 'knowing': 8,
 'harbor': 1,
 'power': 1,
 'still': 27,
 'restrained': 1,
 'ship': 1,
 'bargain': 1,
 'grieving': 2,
 'nobody': 4,
 'caught': 4,
 'deeply': 1,
 'late': 4,
 'really': 20,
 'theyre': 13,
 'father': 1,
 'laughter': 3,
 'behind': 6,
 'final': 1,
 'misunderstood': 1,
 'sister': 1,
 'weave': 1,
 'thorough': 1,
 'seems': 16,
 'rely': 1,
 'shoulder': 1,
 'candle': 1,
 'tomorrow': 5,
 'above': 3,
 'scars': 1,
 'heartaches': 1,
 'hard': 13,
 'shining': 7,
 'sun': 13,
 'this': 34,
 'patch': 1,
 'deny': 3,
 'dancing': 9,
 'blown': 1,
 'cry': 14,
 'own': 10,
 'chiquitita': 2,
 'whats': 10,
 'enchained': 1,
 'hear': 22,
 'friend': 18,
 'hope': 4,
 'try': 15,
 'wrong': 11,
 'see': 54,
 'sad': 12,
 'came': 8,
 'walls': 4,
 'did': 16,
 'tumbling': 1,
 'tell': 21,
 'sky': 7,
 'hate': 3,
 'best': 6,
 'feather': 1,
 'truth': 4,
 'handle': 1,
 'broken': 1,
 'sorrow': 2,
 'quiet': 3,
 'loves': 4,
 'before': 17,
 'guys': 1,
 'emptiness': 3,
 'couple': 1,
 'meet': 8,
 'crazy': 11,
 'guy': 6,
 'lot': 10,
 'closing': 1,
 'seeing': 5,
 'car': 2,
 'may': 7,
 'hes': 9,
 'pavement': 1,
 'dreamed': 2,
 'smiled': 4,
 'world': 20,
 'closed': 2,
 'realized': 1,
 'disapeared': 1,
 'everything': 23,
 'took': 5,
 'thinking': 7,
 'said': 18,
 'long': 16,
 'joe': 1,
 'he': 17,
 'front': 2,
 'couldnt': 7,
 'stupid': 2,
 'them': 17,
 'stunned': 1,
 'brother': 4,
 'men': 7,
 'house': 3,
 'blind': 3,
 'him': 11,
 'id': 9,
 'lies': 5,
 'went': 7,
 'acted': 1,
 'hardly': 2,
 'lifes': 1,
 'nice': 8,
 'his': 16,
 'back': 15,
 'part': 6,
 'told': 4,
 'move': 6,
 'leave': 14,
 'other': 9,
 'feet': 4,
 'over': 13,
 'sittin': 2,
 'bone': 1,
 'waitin': 1,
 'cryin': 1,
 'youd': 11,
 'sitting': 9,
 'lord': 2,
 'memories': 4,
 'cold': 10,
 'chills': 1,
 'wont': 17,
 'met': 4,
 'help': 13,
 'dance': 12,
 'turn': 7,
 'say': 31,
 'goodbye': 7,
 'goes': 5,
 'blame': 4,
 'lets': 5,
 'fade': 2,
 'flying': 5,
 'tonights': 1,
 'yet': 8,
 'knows': 6,
 'nothings': 4,
 'thing': 15,
 'trying': 4,
 'same': 7,
 'weve': 6,
 'nobodys': 3,
 'dream': 16,
 'remember': 8,
 'bad': 11,
 'memory': 1,
 'borrow': 1,
 'forget': 8,
 'snowbird': 1,
 'seventeen': 3,
 'lights': 5,
 'anybody': 3,
 'getting': 6,
 'rock': 6,
 'king': 5,
 'place': 13,
 'jive': 2,
 'where': 15,
 'mood': 2,
 'queen': 6,
 'having': 4,
 'swing': 2,
 'diggin': 1,
 'teaser': 2,
 'beat': 3,
 'em': 2,
 'right': 22,
 'looking': 14,
 'friday': 3,
 'young': 5,
 'musics': 2,
 'low': 5,
 'bit': 4,
 'watch': 4,
 'high': 7,
 'tambourine': 2,
 'chance': 19,
 'scene': 3,
 'anyone': 4,
 'chasing': 3,
 'breaking': 6,
 'circle': 1,
 'matter': 4,
 'doing': 3,
 'laughing': 3,
 'hoping': 1,
 'scar': 1,
 'wondering': 1,
 'disillusions': 2,
 'thats': 20,
 'doesnt': 10,
 'heal': 1,
 'wishing': 4,
 'shared': 1,
 'left': 8,
 'wound': 1,
 'somewhere': 7,
 'stop': 3,
 'voice': 8,
 'disillusion': 1,
 'shadows': 6,
 'changing': 3,
 'loud': 3,
 'smiling': 4,
 'want': 25,
 'crowd': 4,
 'cant': 25,
 'seem': 4,
 'flirt': 1,
 'does': 7,
 'feelings': 9,
 'honey': 9,
 'fun': 9,
 'searching': 2,
 'read': 4,
 'chick': 1,
 'child': 3,
 'ah': 2,
 'mother': 3,
 'driving': 3,
 'cute': 1,
 'chat': 2,
 'style': 4,
 'hot': 1,
 'maybe': 6,
 'flash': 2,
 'funny': 11,
 'pretty': 6,
 'wild': 4,
 'teasing': 1,
 'groovy': 1,
 'expectations': 1,
 'fedup': 1,
 'stars': 4,
 'white': 2,
 'trust': 3,
 'reality': 2,
 'got': 23,
 'meets': 3,
 'pretend': 2,
 'hopes': 2,
 'within': 4,
 'angel': 6,
 'reach': 4,
 'charming': 1,
 'movie': 6,
 'living': 9,
 'hollywood': 1,
 'dreamworld': 2,
 'agnetha': 5,
 'frida': 4,
 'escape': 3,
 'whirl': 2,
 'acquisitions': 1,
 'fuss': 1,
 'hold': 11,
 'somehow': 5,
 'everytime': 1,
 'first': 7,
 'exist': 1,
 'sounds': 6,
 'wooh': 1,
 'violin': 1,
 'wish': 8,
 'work': 4,
 'practising': 1,
 'fair': 1,
 'fiddle': 2,
 'find': 19,
 'mind': 16,
 'improve': 1,
 'listened': 1,
 'diddle': 2,
 'wed': 2,
 'or': 15,
 'far': 7,
 'strangely': 1,
 'understand': 7,
 'friends': 11,
 'wing': 1,
 'wings': 2,
 'seen': 6,
 'theyve': 3,
 'questions': 4,
 'places': 2,
 'eagle': 4,
 'forests': 1,
 'mountains': 1,
 'spell': 3,
 'horizons': 1,
 'speak': 5,
 'land': 4,
 'climb': 1,
 'rides': 1,
 'spread': 1,
 'stories': 1,
 'real': 2,
 'hearing': 3,
 'beyond': 1,
 'seas': 1,
 'bird': 1,
 'higher': 2,
 'dreaming': 3,
 'fly': 2,
 'limit': 1,
 'needs': 2,
 'star': 8,
 'empty': 5,
 'known': 3,
 'guiding': 1,
 'travel': 2,
 'helping': 2,
 'man': 17,
 'has': 12,
 'lose': 6,
 'going': 12,
 'dark': 7,
 'should': 8,
 'side': 3,
 'repeat': 2,
 'regret': 2,
 'closer': 1,
 'fernando': 5,
 'die': 5,
 'rio': 1,
 'since': 6,
 'minute': 4,
 'humming': 1,
 'rifle': 1,
 'afraid': 2,
 'recall': 2,
 'made': 10,
 'drums': 2,
 'starry': 1,
 'seemed': 3,
 'bugle': 1,
 'air': 7,
 'many': 3,
 'afar': 2,
 'proud': 7,
 'freedom': 3,
 'distant': 2,
 'firelight': 1,
 'old': 19,
 'cannons': 1,
 'eternally': 1,
 'years': 3,
 'softly': 2,
 'prepared': 2,
 'roar': 1,
 'crossed': 1,
 'calls': 2,
 'full': 3,
 'liberty': 1,
 'coming': 8,
 'x2': 2,
 'bright': 4,
 'havent': 2,
 'ago': 1,
 'guns': 1,
 'grande': 1,
 'grey': 3,
 'strumming': 1,
 'guitar': 1,
 'ashamed': 1,
 'frightful': 1,
 'de': 1,
 'puedes': 1,
 'juventud': 1,
 'llego': 1,
 'haria': 1,
 'y': 1,
 'tus': 1,
 'durmio': 1,
 'redoblar': 1,
 'ayer': 1,
 'noche': 1,
 'tarareabas': 1,
 'echar': 1,
 'la': 9,
 'esos': 1,
 'se': 1,
 'yo': 1,
 'pensabamos': 1,
 'con': 1,
 'estrellas': 1,
 'aquel': 1,
 'el': 1,
 'vida': 1,
 'brillaba': 1,
 'nadie': 1,
 'pensaba': 1,
 'lumbre': 1,
 'guitarrear': 1,
 'refleja': 1,
 'eternidad': 1,
 'habia': 1,
 'momento': 1,
 'tambor': 1,
 'una': 1,
 'podia': 1,
 'ganas': 1,
 'pasaba': 1,
 'orgullo': 1,
 'perder': 1,
 'tambores': 1,
 'morir': 1,
 'senti': 1,
 'veo': 1,
 'valor': 1,
 'ese': 1,
 'suave': 1,
 'que': 1,
 'claridad': 1,
 'si': 1,
 'llorar': 1,
 'fue': 1,
 'quiza': 1,
 'paz': 1,
 'confesar': 1,
 'ni': 1,
 'repeata': 1,
 'acercaban': 1,
 'tuviera': 1,
 'recuerda': 1,
 'mas': 1,
 'temor': 1,
 'tu': 1,
 'ya': 1,
 'sordo': 1,
 'verguenza': 1,
 'un': 1,
 'logramos': 1,
 'escuchar': 1,
 'vejez': 1,
 'alla': 1,
 'azul': 1,
 'tiempo': 1,
 'hacer': 1,
 'parecia': 1,
 'tuve': 1,
 'siento': 1,
 'proteccion': 1,
 'algo': 1,
 'en': 1,
 'hoy': 1,
 'volverlo': 1,
 'nosotros': 1,
 'dos': 1,
 'vivimos': 1,
 'cancion': 1,
 'lo': 1,
 'al': 1,
 'ojos': 1,
 'alrededor': 1,
 'disfrutar': 1,
 'jamas': 1,
 'atras': 1,
 'aun': 1,
 'paraciera': 1,
 'por': 1,
 'ella': 1,
 'depressed': 2,
 'bum': 1,
 'next': 2,
 'laid': 1,
 'travelling': 1,
 'beautiful': 4,
 'chew': 1,
 'sip': 1,
 'each': 10,
 'weather': 2,
 'grass': 3,
 'straw': 1,
 'bus': 3,
 'isnt': 5,
 'outdoors': 1,
 'railroad': 1,
 'waiting': 17,
 'bumble': 1,
 'downtown': 2,
 'working': 3,
 'bee': 1,
 'track': 2,
 'lying': 3,
 'lie': 8,
 'lazy': 1,
 'flower': 1,
 'daylight': 1,
 'solitude': 2,
 'entwined': 2,
 'close': 9,
 'warms': 1,
 'diamond': 1,
 'window': 5,
 'haze': 1,
 'goodnight': 3,
 'fireplace': 2,
 'silently': 1,
 'pane': 1,
 'scenes': 2,
 'embers': 2,
 'forgotten': 2,
 'soon': 5,
 'curtins': 1,
 'finally': 3,
 'echoes': 1,
 'twilight': 2,
 'room': 9,
 'images': 3,
 'dying': 5,
 'twinkle': 2,
 'awaited': 2,
 'bend': 1,
 'trapped': 2,
 'passing': 4,
 'peaceful': 3,
 'become': 3,
 'mmm': 2,
 'present': 2,
 'raindrops': 1,
 'prolonged': 2,
 'through': 33,
 'dawn': 1,
 'outside': 4,
 'round': 5,
 'runs': 2,
 'glittring': 1,
 'gloom': 3,
 'drifts': 1,
 'darkness': 5,
 'shine': 2,
 'trees': 3,
 'games': 3,
 'milky': 1,
 'backs': 1,
 'rustling': 2,
 'wonder': 9,
 'subdued': 2,
 'stillness': 1,
 'half': 4,
 'tonight': 11,
 'awake': 4,
 'comes': 6,
 'falls': 2,
 'twelve': 2,
 'rainbow': 2,
 'win': 4,
 't': 1,
 'watching': 3,
 'winds': 4,
 'sight': 3,
 'prays': 1,
 'spend': 3,
 'v': 1,
 'after': 6,
 'chase': 1,
 'blowing': 5,
 'nothing': 21,
 'gimme': 1,
 'flat': 2,
 'fortune': 3,
 'autumn': 4,
 'open': 5,
 'noone': 4,
 'gaze': 1,
 'midnight': 4,
 'different': 7,
 'loneliness': 1,
 'phone': 2,
 'rubbing': 1,
 'off': 6,
 'givin': 1,
 'call': 7,
 'done': 10,
 'gentleness': 1,
 'ask': 6,
 'patient': 1,
 'eternity': 2,
 'lingered': 1,
 'consolation': 1,
 'bring': 3,
 'miracle': 1,
 'loving': 3,
 'ooh': 3,
 'hmm': 1,
 'tight': 5,
 'happen': 2,
 'fell': 2,
 'those': 8,
 'chilly': 1,
 'days': 9,
 'tears': 3,
 'loved': 3,
 'clouds': 2,
 'guess': 7,
 'autumns': 1,
 'replaced': 1,
 'heart': 10,
 'bitter': 1,
 'than': 6,
 'falling': 5,
 'gets': 2,
 'skies': 1,
 'cannot': 2,
 'honolulu': 1,
 'sand': 2,
 'card': 1,
 'send': 2,
 'beach': 2,
 'swimming': 1,
 'alice': 2,
 'enjoying': 1,
 'vacation': 1,
 'someone': 9,
 'surfing': 1,
 'airport': 1,
 'plane': 2,
 'exciting': 2,
 'hawaii': 1,
 'holding': 2,
 'gives': 2,
 'drove': 1,
 'few': 4,
 'plain': 3,
 'plans': 1,
 ...}

In [6]:
for author in data:
    print(author)


artist
ABBA
Ace Of Base
Adam Sandler
Adele
Aerosmith
Air Supply
Aiza Seguerra
Alabama
Alan Parsons Project
Aled Jones
Alice Cooper
Alice In Chains
Alison Krauss
Allman Brothers Band
Alphaville
America
Amy Grant
Andrea Bocelli
Andy Williams
Annie
Ariana Grande
Ariel Rivera
Arlo Guthrie
Arrogant Worms
Avril Lavigne
Backstreet Boys
Barbie
Barbra Streisand
Beach Boys
The Beatles
Beautiful South
Beauty And The Beast
Bee Gees
Bette Midler
Bill Withers
Billie Holiday
Billy Joel
Bing Crosby
Black Sabbath
Blur
Bob Dylan
Bob Marley
Bob Rivers
Bob Seger
Bon Jovi
Boney M.
Bonnie Raitt
Bosson
Bread
Britney Spears
Bruce Springsteen
Bruno Mars
Bryan White
Cake
Carly Simon
Carol Banawa
Carpenters
Cat Stevens
Celine Dion
Chaka Khan
Cheap Trick
Cher
Chicago
Children
Chris Brown
Chris Rea
Christina Aguilera
Christina Perri
Christmas Songs
Christy Moore
Chuck Berry
Cinderella
Clash
Cliff Richard
Coldplay
Cole Porter
Conway Twitty
Counting Crows
Creedence Clearwater Revival
Crowded House
Culture Club
Cyndi Lauper
Dan Fogelberg
Dave Matthews Band
David Allan Coe
David Bowie
David Guetta
David Pomeranz
Dean Martin
Death
Deep Purple
Def Leppard
Demi Lovato
Depeche Mode
Devo
Dewa 19
Diana Ross
Dire Straits
Divine
Dolly Parton
Don Henley
Don McLean
Don Moen
Donna Summer
Doobie Brothers
Doors
Doris Day
Drake
Dream Theater
Dusty Springfield
Eagles
Ed Sheeran
Eddie Cochran
Electric Light Orchestra
Ella Fitzgerald
Ellie Goulding
Elton John
Elvis Costello
Elvis Presley
Eminem
Emmylou Harris
Engelbert Humperdinck
Enigma
Enrique Iglesias
Enya
Eppu Normaali
Erasure
Eric Clapton
Erik Santos
Etta James
Europe
Eurythmics
Evanescence
Everclear
Everlast
Exo
Exo-K
Extreme
Fabolous
Face To Face
Faces
Faith Hill
Faith No More
Falco
Fall Out Boy
Fastball
Fatboy Slim
Fifth Harmony
Fiona Apple
Fleetwood Mac
Flo-Rida
Foo Fighters
Foreigner
Frank Sinatra
Frank Zappa
Frankie Goes To Hollywood
Frankie Laine
Frankie Valli
Freddie Aguilar
Freddie King
Free
Freestyle
Fun.
Garth Brooks
Gary Numan
Gary Valenciano
Genesis
George Formby
George Harrison
George Jones
George Michael
George Strait
Gino Vannelli
Gipsy Kings
Glee
Glen Campbell
Gloria Estefan
Gloria Gaynor
GMB
Gordon Lightfoot
Grand Funk Railroad
Grateful Dead
Grease
Great Big Sea
Green Day
Gucci Mane
Guided By Voices
Guns N' Roses
Halloween
Hank Snow
Hank Williams
Hank Williams Jr.
Hanson
Happy Mondays
Harry Belafonte
Harry Connick, Jr.
Heart
Helloween
High School Musical
Hillsong
Hillsong United
HIM
Hollies
Hooverphonic
Horrible Histories
Housemartins
Howard Jones
Human League
Ian Hunter
Ice Cube
Idina Menzel
Iggy Pop
Il Divo
Imagine Dragons
Imago
Imperials
Incognito
Incubus
Independence Day
Indiana Bible College
Indigo Girls
Ingrid Michaelson
Inna
Insane Clown Posse
Inside Out
INXS
Iron Butterfly
Iron Maiden
Irving Berlin
Isley Brothers
Israel
Israel Houghton
Iwan Fals
J Cole
Jackson Browne
The Jam
James Taylor
Janis Joplin
Jason Mraz
Jennifer Lopez
Jim Croce
Jimi Hendrix
Jimmy Buffett
John Denver
John Legend
John Martyn
John McDermott
John Mellencamp
John Prine
John Waite
Johnny Cash
Joni Mitchell
Jose Mari Chan
Josh Groban
Journey
Joy Division
Judas Priest
Judds
Judy Garland
Justin Bieber
Justin Timberlake
Kanye West
Kari Jobe
Kate Bush
Katy Perry
Keith Green
Keith Urban
Kelly Clarkson
Kelly Family
Kenny Chesney
Kenny Loggins
Kenny Rogers
Kid Rock
The Killers
Kim Wilde
King Crimson
King Diamond
Kinks
Kirk Franklin
Kirsty Maccoll
Kiss
Koes Plus
Korn
Kris Kristofferson
Kyla
Kylie Minogue
Lady Gaga
Lana Del Rey
Lata Mangeshkar
Lauryn Hill
Lea Salonga
Leann Rimes
Lenny Kravitz
Leo Sayer
Leonard Cohen
Les Miserables
Lil Wayne
Linda Ronstadt
Linkin Park
Lionel Richie
Little Mix
Little Walter
LL Cool J
Lloyd Cole
Lorde
Loretta Lynn
Lou Reed
Louis Armstrong
Louis Jordan
Lucky Dube
Luther Vandross
Lynyrd Skynyrd
Madonna
Manowar
Mariah Carey
Marianne Faithfull
Marillion
Marilyn Manson
Mark Ronson
Maroon 5
Mary Black
Matt Monro
Matt Redman
Mazzy Star
Mc Hammer
Meat Loaf
Megadeth
Men At Work
Metallica
Michael Bolton
Michael Buble
Michael Jackson
Michael W. Smith
Migos
Miley Cyrus
Misfits
Modern Talking
The Monkees
Moody Blues
Morrissey
Mud
'n Sync
Nat King Cole
Natalie Cole
Natalie Grant
Natalie Imbruglia
Nazareth
Ne-Yo
Neil Diamond
Neil Sedaka
Neil Young
New Order
Next To Normal
Nick Cave
Nick Drake
Nickelback
Nicki Minaj
Nightwish
Nina Simone
Nine Inch Nails
Nirvana
Nitty Gritty Dirt Band
Noa
NOFX
Norah Jones
Notorious B.I.G.
O-Zone
O.A.R.
Oasis
Ocean Colour Scene
Offspring
Ofra Haza
Oingo Boingo
Old 97's
Oliver
Olivia Newton-John
Olly Murs
Omd
One Direction
OneRepublic
Opeth
Orphaned Land
Oscar Hammerstein
Otis Redding
Our Lady Peace
Out Of Eden
Outkast
Overkill
Owl City
Ozzy Osbourne
Passenger
Pat Benatar
Patsy Cline
Patti Smith
Paul McCartney
Paul Simon
Pearl Jam
Perry Como
Pet Shop Boys
Peter Cetera
Peter Gabriel
Peter Tosh
Pharrell Williams
Phil Collins
Phineas And Ferb
Phish
Pink Floyd
Pitbull
Planetshakers
P!nk
Pogues
Point Of Grace
Poison
Pretenders
Primus
Prince
Proclaimers
Procol Harum
Puff Daddy
Q-Tip
Qntal
Quarashi
Quarterflash
Quasi
Queen
Queen Adreena
Queen Latifah
Queens Of The Stone Age
Queensryche
Quicksand
Quicksilver Messenger Service
Quiet Riot
Quietdrive
Quincy Jones
Quincy Punx
R. Kelly
Radiohead
Raffi
Rage Against The Machine
Rainbow
Rammstein
Ramones
Randy Travis
Rascal Flatts
Ray Boltz
Ray Charles
Reba Mcentire
Red Hot Chili Peppers
Regine Velasquez
Religious Music
Rem
Reo Speedwagon
Richard Marx
Rick Astley
Rihanna
Robbie Williams
Rod Stewart
Rolling Stones
Roxette
Roxy Music
Roy Orbison
Rush
Sam Smith
Santana
Savage Garden
Scorpions
Selah
Selena Gomez
Sia
Side A
Slayer
Smiths
Snoop Dogg
Soundgarden
Spandau Ballet
Squeeze
Starship
Status Quo
Steely Dan
Steve Miller Band
Stevie Ray Vaughan
Stevie Wonder
Sting
Stone Roses
Stone Temple Pilots
Styx
Sublime
Supertramp
System Of A Down
Talking Heads
Taylor Swift
Tears For Fears
The Temptations
Ten Years After
The Broadways
The Script
The Weeknd
Thin Lizzy
Tiffany
Tim Buckley
Tim McGraw
Tina Turner
Tom Jones
Tom Lehrer
Tom T. Hall
Tom Waits
Tool
Tori Amos
Toto
Townes Van Zandt
Tracy Chapman
Tragically Hip
Train
Travis
Twenty One Pilots
U. D. O.
U-Kiss
U2
UB40
Ufo
Ugly Kid Joe
Ultramagnetic Mc's
Ultravox
Uncle Kracker
Uncle Tupelo
Underoath
Underworld
Unearth
Ungu
Unkle
Unknown
Unseen
Unwritten Law
Uriah Heep
Used
Usher
Utada Hikaru
Utopia
Van Halen
Van Morrison
Vanessa Williams
Vangelis
Vanilla Ice
Velvet Underground
Vengaboys
Venom
Vera Lynn
Vertical Horizon
Veruca Salt
Verve
Vince Gill
Violent Femmes
Virgin Steele
Vonda Shepard
Vybz Kartel
Walk The Moon
Wanda Jackson
Wang Chung
Warren Zevon
W.A.S.P.
Waterboys
Waylon Jennings
Ween
Weezer
Weird Al Yankovic
Westlife
Wet Wet Wet
Wham!
Whiskeytown
The White Stripes
Whitesnake
Whitney Houston
Who
Widespread Panic
Will Smith
Willie Nelson
Wilson Phillips
Wilson Pickett
Wishbone Ash
Within Temptation
Wiz Khalifa
Wu-Tang Clan
Wyclef Jean
X
X Japan
X-Raided
X-Ray Spex
X-Treme
Xandria
Xavier Naidoo
Xavier Rudd
Xentrix
Xiu Xiu
Xscape
XTC
Xzibit
Yazoo
Yeah Yeah Yeahs
Yelawolf
Yello
Yellowcard
Yeng Constantino
Yes
YG
Ying Yang Twins
Yngwie Malmsteen
Yo Gotti
Yo La Tengo
Yoko Ono
Yolanda Adams
Yonder Mountain String Band
You Am I
Young Buck
Young Dro
Young Jeezy
Youngbloodz
Youth Of Today
Yukmouth
Yung Joc
Yusuf Islam
Z-Ro
Zac Brown Band
Zakk Wylde
Zao
Zayn Malik
Zebra
Zebrahead
Zed
Zero 7
Zeromancer
Ziggy Marley
Zoe
Zoegirl
Zornik
Zox
Zucchero
Zwan
ZZ Top
Joseph And The Amazing Technicolor Dreamcoat
Soundtracks
Van Der Graaf Generator
Various Artists
Zazie

Importo las utilidades de diccionario de la primer parte del TP, de donde vamos a usar la funcion calcular_distancia como metrica. Las metricas siempre se definen en base a lo que vayamos a hacer, existen metricas mas o menos aceptadas para ciertas cosas, pero no evita que podamos definir las nuestras propias (con cierto fundamento claro esta).


In [7]:
import utilidades_diccionarios

Pruebo que tanto se parecen algunos artistas al azar. Voy a necesitar markdown para que se vea mas lindo, asi que puedo importar la funcion para mostrarlo directamente desde el output:


In [8]:
from IPython.display import display, Markdown, Latex

In [9]:
import random

artists = list(data.keys())

In [10]:
artist_a = random.choice(artists)
artist_b = random.choice(artists)
diference = utilidades_diccionarios.calcular_distancia(data[artist_a],data[artist_b],2)

display(Markdown( f'Diferencia entre *{artist_a}* y _{artist_b}_ es: **{diference}** '))


Diferencia entre Roxy Music y Ultramagnetic Mc's es: 50153


In [11]:
artist_a = random.choice(artists)
artist_b = random.choice(artists)
diference = utilidades_diccionarios.calcular_distancia(data[artist_a],data[artist_b],2)

display(Markdown( f'Diferencia entre *{artist_a}* y _{artist_b}_ es: **{diference}** '))


Diferencia entre Planetshakers y David Guetta es: 80956


In [12]:
artist_a = random.choice(artists)
artist_b = random.choice(artists)
diference = utilidades_diccionarios.calcular_distancia(data[artist_a],data[artist_b],2)

display(Markdown( f'Diferencia entre *{artist_a}* y _{artist_b}_ es: **{diference}** '))


Diferencia entre Quietdrive y Ray Boltz es: 180532


In [13]:
artist_a = random.choice(artists)
artist_b = random.choice(artists)
diference = utilidades_diccionarios.calcular_distancia(data[artist_a],data[artist_b],2)

display(Markdown( f'Diferencia entre *{artist_a}* y _{artist_b}_ es: **{diference}** '))


Diferencia entre Falco y Bonnie Raitt es: 472610


In [14]:
artist_a = random.choice(artists)
artist_b = random.choice(artists)
diference = utilidades_diccionarios.calcular_distancia(data[artist_a],data[artist_b],2)

display(Markdown( f'Diferencia entre *{artist_a}* y _{artist_b}_ es: **{diference}** '))


Diferencia entre Crowded House y Neil Young es: 206362

Extra

Hay una forma sencilla de armar canciones nuevas de un artista usando cosas que vimos. Si bien es una solucion "burda", las soluciones mas sofisticadas siguen la misma idea


In [15]:
import csv

data = {}

authors =  ["ABBA"]

with open("songdata.csv") as file:
    for author,_,_,lyric in csv.reader(file):
    
        if author not in authors:
            continue
    
        prev = ""
        for word in lyric.lower().split():
            new_word = word
            while new_word and not new_word[-1].isalpha():
                new_word = new_word[:-1]
                      
            data[prev] = data.get(prev,[])
            data[prev].append(new_word)
            
            prev = new_word
            
            if not word[-1].isalpha():
                data[prev] = data.get(prev,[])
                data[prev].append(word[-1])
            
                prev = word[-1]
                
        data[prev] = data.get(prev,[])
        data[prev].append("")

Lo que hice es armar un diccionario con las palabras de las canciones, y a cada una asociarle una lista con todas las palabras que aparecen despues de esa. Al ser una lista con repeticiones, si elijo una palabra al azar, es mas probable que elija una palabra que aparece mas seguido que otras. Entonces, al igual que con el predictivo, puedo armar una cancion de ABBA asi:


In [16]:
cancion = []
prev = ""
for _ in range(100):
    next_word = random.choice(data[prev])
    cancion.append(next_word)
    prev = next_word
    
display(Markdown("_" + " ".join(cancion) + "_") )


come on the people need me you're gone did i remember soldiers write the songs i'm pretty young and they say oh bang , this world where my life but you hear the south from afar twinkle , yeah rock and you're gone though we had never left for living without saying treat him i can't get married , you tell me of guns and there is just like i am to hard i fear when i think you're all right , he called the answer if you see is a dreamworld here like an eternal lie so good

Incluso para ser algo rapido, alguna clase de sentido tiene. Si le queremos dar mas sentido, deberiamos analizar mas que la palabra anterior, por ejemplo las 2 anteriores, y eso deberia mejorar


In [17]:
import csv

data = {}

authors =  ["ABBA"]

with open("songdata.csv") as file:
    
    prev = ("","")
    for author,_,_,lyric in csv.reader(file):
    
        if author not in authors:
            continue
    
        for word in lyric.lower().split():
            new_word = word
            
            if not word[0].isalpha():
                data[prev] = data.get(prev,[])
                data[prev].append(word[0])
            
                prev = (prev[-1],word[0])
            
            while new_word and not new_word[0].isalpha():
                new_word = new_word[1:]
            
            while new_word and not new_word[-1].isalpha():
                new_word = new_word[:-1]
                      
            data[prev] = data.get(prev,[])
            data[prev].append(new_word)
            
            prev = (prev[-1],new_word)
            
            if not word[-1].isalpha():
                data[prev] = data.get(prev,[])
                data[prev].append(word[-1])
            
                prev = (prev[-1],word[-1])
                
        data[prev] = data.get(prev,[])
        data[prev].append("")
        prev = (prev[-1],"")

In [18]:
cancion = []
prev = ("","")
for _ in range(100):
    next_word = random.choice(data[prev])
    cancion.append(next_word)
    prev = (prev[-1],next_word)
    
display(Markdown("_" + " ".join(cancion) + "_") )


look at that cat you'd think that i could hear someone saying as though he was an impossible case no-one ever could reach me but i have been waiting for you here like and old fashioned hero you stand before me you please me , baby so why don't you realize i may what about all those men ? ( your smile and the pain i chose to hide just walk away renee you won't have me tonight in the mirror when i just know it's true oh lord i'm blue i'm cryin ' over you cryin ' over you

Tambien podemos combinar varias canciones de varios artistas para hacer algo aun mas loco.


In [19]:
import csv

data = {}

authors =  ["ABBA","Stevie Wonder","Hank Williams"]

with open("songdata.csv") as file:
    
    prev = ("","")
    for author,_,_,lyric in csv.reader(file):
    
        if author not in authors:
            continue
    
        for word in lyric.lower().split():
            new_word = word
            
            if not word[0].isalpha():
                data[prev] = data.get(prev,[])
                data[prev].append(word[0])
            
                prev = (prev[-1],word[0])
            
            while new_word and not new_word[0].isalpha():
                new_word = new_word[1:]
            
            while new_word and not new_word[-1].isalpha():
                new_word = new_word[:-1]
                      
            data[prev] = data.get(prev,[])
            data[prev].append(new_word)
            
            prev = (prev[-1],new_word)
            
            if not word[-1].isalpha():
                data[prev] = data.get(prev,[])
                data[prev].append(word[-1])
            
                prev = (prev[-1],word[-1])
                
        data[prev] = data.get(prev,[])
        data[prev].append("")
        prev = (prev[-1],"")

In [20]:
cancion = []
prev = ("","")
for _ in range(100):
    next_word = random.choice(data[prev])
    cancion.append(next_word)
    prev = (prev[-1],next_word)
    
display(Markdown("_" + " ".join(cancion) + "_") )


look at how they scare me when i ( c ) morning , noon and every night one of these days i'm gonna do my train , i'm leaving now i'm moanin ' moa-oanin ' the blues sometimes life is done should you be coming back soon you don't care what i say it's okay ' cause i know it's time in your soul is burdened down and die you and hold you tight , ' cause tonight i'm leavin ' on there's not a soul out there is fire in his hand on my way to italy from the

La magia aca, es que mientras menor sea la distancia entre 2 autores mejor se van a combinar las diferentes letras